package com_djm_2025_06_09.myString.StringDemo;

/**
 * 演示String的构造方法
 *
 * @author dengjiangming
 * @version 1.0.0
 * @date 2025-06-09
 */
public class StringDemo1 {

    public static void main(String[] args) {
        //1.用直接赋值的方式获取一个字符串对象
        String s1 = "abc";
        System.out.println(s1);

        //2.使用new的方式获取一个字符串对象
        String s2 = new String();
        System.out.println("@" + s2 + "!");

        //传递一个字符串，根据传递的字符串内容再创建一个字符串对象
        String s3 = new String("def");
        System.out.println(s3);

        //传递一个字符数组，根据字符数组的内容再创建一个新的字符串对象
        //适用场景:需要修改字符串的内容。abc Qbc
        //abc -->{'a','b','c'} -->{'Q','b','c'}
        char[] chs = new char[]{'a', 'b', 'c', 'd'};
        String s4 = new String(chs);
        System.out.println(s4);//abcd

        //传递一个字节数组，根据字节数组的内容再创建一个新的字符串对象
        //适用场景：以后再网络中传输的数据其实都是字节流
        //我们一般要把字节信息进行转换，转化成字符串。此时就要用到这个构造方法了
        byte[] bytes = new byte[]{97,98,99,100};
        String s5 = new String(bytes);
        System.out.println(s5);//abcd

    }

}
